package com.iflysse.upload;

import java.io.File;

import org.springframework.web.multipart.MultipartFile;

import cn.hutool.core.lang.UUID;

/**
 * 处理文件或者图片信息 getInstance方法 实例化对象
 * 
 * @author Windows
 *
 */
public class UploadTran {

	private volatile static UploadTran fileTran;

	public UploadTran() {
	}

	public static UploadTran getInstance() {
		if (fileTran == null) {
			synchronized (UploadTran.class) {
				if (fileTran == null) {
					fileTran = new UploadTran();
				}
			}
		}
		return fileTran;
	}

	public String transformatiom(MultipartFile file,String uploadPath) {
		/**
		 * 获取文件类型 file.getContentType() image/jpeg 获取函数原始名称 file.getOriginalFilename()
		 * 1640016160965.jpg 获取文件大小 file.getSize() 14209 transferTo(File dest)
		 * 将文件保存到dest指定的位置
		 */

		// 随机生产文件名 保留文件后缀名
		String fileName = file.getOriginalFilename();
		// 获取后缀名
		String str = fileName.substring(fileName.lastIndexOf("."));

		// 随机生产文件名
		String newFile = UUID.randomUUID().toString() + str;
		String path = uploadPath + newFile;
		System.out.println(path);
		File dest = new File(path);
		// 检测是否存在目录
		if (!dest.getParentFile().exists()) {
			dest.getParentFile().mkdirs();// 新建文件夹
		}

		try {
			file.transferTo(dest);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newFile;
	}

}
